<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Java Foundation Classes</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Java_Foundation_Classes"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Java_Foundation_Classes rootpage-Java_Foundation_Classes skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Java Foundation Classes</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p>Die <b>Java Foundation Classes</b> (JFC) sind ein <a href="Framework" title="Framework">Framework</a> zur Erstellung <a href="Grafische_Benutzeroberfl%C3%A4che" title="Grafische Benutzeroberfläche">grafischer Benutzeroberflächen</a> in <a href="Java_(Programmiersprache)" title="Java (Programmiersprache)">Java</a>. Die Java Foundation Classes werden durch folgende Features definiert: <a href="Swing_(Java)" title="Swing (Java)">Swing</a>-GUI-Komponenten, Pluggable Look-and-Feel Support, Accessibility, <a href="Java_2D" title="Java 2D">Java 2D</a> und <a href="Internationalisierung_(Softwareentwicklung)" title="Internationalisierung (Softwareentwicklung)">Internationalisierung (i18n)</a>.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> Gemeinsam stellen diese die Basis für plattformunabhängige Smart Client Java GUIs, unabhängig davon, ob das darunterliegende Betriebssystem <a href="Microsoft_Windows" title="Microsoft Windows">Windows</a>, <a href="Sun_Solaris" class="mw-redirect" title="Sun Solaris">Sun Solaris</a> oder <a href="Linux" title="Linux">Linux</a> ist. Für die meisten aktuellen Betriebssysteme gibt es ebenfalls Implementierungen.
</p>
<div class="mw-heading mw-heading2"><h2 id="Bestandteile">Bestandteile</h2></div>
<p>Die Java Foundation Classes werden in mehreren APIs implementiert:
</p>
<ul><li>Swing GUI Komponenten & Pluggable Look-and-Feel Support – <a href="Swing_(Java)" title="Swing (Java)">Swing</a></li>
<li>Basis für Swing-Komponenten sowie LayoutManager – <a href="Abstract_Window_Toolkit" title="Abstract Window Toolkit">Abstract Window Toolkit</a> (AWT)</li>
<li>Darstellung & Modifikation 2-dimensionaler Objekte – <a href="Java_2D" title="Java 2D">Java 2D</a></li>
<li>Accessibility – <a href="Java_Accessibility_API" title="Java Accessibility API">Java Accessibility API</a> (JAAPI) und spezielle Erweiterungen in <a href="Swing_(Java)" title="Swing (Java)">Swing</a> Komponenten</li>
<li>Internationalisierung – java.util, java.text, Input Method Framework</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Differenzierung">Differenzierung</h2></div>
<p>Die Java Foundation Classes machen einen Teil der <b>Java Desktop</b> APIs aus und werden oft synonym mit Java Desktop verwendet. Zu den Java Desktop APIs werden aber zusätzlich zu den obengenannten APIs noch folgende gezählt:<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li><a href="Java_Web_Start" title="Java Web Start">Java Web Start</a> / <a href="JNLP" class="mw-redirect" title="JNLP">Java Network Launching Protocol</a> (JNLP) – Deployment von Java-Applikationen über Browser</li>
<li>Java PlugIn – Plugin von Java für Browser</li>
<li><a href="Java_3D" title="Java 3D">Java 3D</a> – 3D für Java-Applikationen</li>
<li><a href="Java_Sound" title="Java Sound">Java Sound</a></li>
<li><a href="Java_Bindings_for_OpenGL" class="mw-redirect" title="Java Bindings for OpenGL">Java Bindings for OpenGL</a> (JOGL)</li>
<li><a href="Java_Advanced_Imaging" title="Java Advanced Imaging">Java Advanced Imaging</a> (JAI)</li>
<li><a href="JavaBeans" title="JavaBeans">JavaBeans</a></li>
<li><a href="JavaHelp_System" title="JavaHelp System">JavaHelp System</a> – Einbindung von Online-Hilfe in Java-Applikationen</li>
<li>JDesktop Integration Components (JDIC)</li></ul>
<p>Die Java Foundation Classes (und auch die Java Desktop APIs) überschneiden sich mit den <b>Java Media API</b>s. Diese enthalten folgende Teile:<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li>Java 2D</li>
<li>Java 3D</li>
<li><a href="Java_Advanced_Imaging" title="Java Advanced Imaging">Java Advanced Imaging</a> (JAI)</li>
<li><a href="Java_Bindings_for_OpenGL" class="mw-redirect" title="Java Bindings for OpenGL">Java Bindings for OpenGL</a> (JOGL)</li>
<li>Java Image I/O API</li>
<li><a href="Java_Media_Framework" title="Java Media Framework">Java Media Framework</a> (JMF)</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Geschichte">Geschichte</h2></div>
<p><a href="Abstract_Window_Toolkit" title="Abstract Window Toolkit">AWT</a>, die damals einzige Möglichkeit um Benutzeroberflächen zu gestalten, wurde in den ersten Jahren der Existenz von Java stark kritisiert. Es ist nur wenig mehr als ein Wrapper um die nativen Grafikfähigkeiten der Plattformen, auf denen Java läuft. Es konnte somit nicht mehr, als die jeweilige Plattform bot, und machte es notwendig, dass die Entwickler auf die Unterschiede der Plattformen eingingen.
</p><p>Alternative Grafikbibliotheken wie die Internet Foundation Classes (IFC) von <a href="Netscape_Communications" title="Netscape Communications">Netscape</a> oder die Application Foundation Classes (AFC) von <a href="Microsoft" title="Microsoft">Microsoft</a> wurden entwickelt.
</p><p>Schlussendlich kündigten Sun und Netscape am 2. April 1997 an, die Internet Foundation Classes, verknüpft mit anderen Technologien und erweitert um die Fähigkeit von Pluggable Look-and-Feels, unter dem Namen „Java Foundation Classes“ herauszubringen. Swing wurde erstmals Ende 1997 mit dem <a href="Java_Development_Kit" title="Java Development Kit">JDK</a> 1.1.5 als externe Bibliothek ausgeliefert, die Java Foundation Classes sind seit JDK 1.2 („Java 2“) Ende 1998 fester Bestandteil der Java-Laufzeitumgebung.
</p><p>Die Veröffentlichung der Java Foundation Classes machte andere Ansätze zur Darstellung von Java GUIs, somit auch die Internet Foundation Classes und die Application Foundation Classes, obsolet.
</p>
<div class="mw-heading mw-heading2"><h2 id="Siehe_auch">Siehe auch</h2></div>
<ul><li><a href="Standard_Widget_Toolkit" title="Standard Widget Toolkit">Standard Widget Toolkit</a> – Konkurrent von Swing</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://java.sun.com/javase/technologies/desktop/">Java SE Desktop Overview</a> – Übersicht über alle Desktop-Komponenten von Java, darunter auch die Java Foundation Classes</li>
<li><a rel="nofollow" class="external text" href="http://docs.oracle.com/javase/tutorial/uiswing/index.html">„The Swing Tutorial“</a> (Sun)</li>
<li><a rel="nofollow" class="external text" href="http://java.sun.com/products/jlf/">Java Look & Feel Design Guidelines</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://docs.oracle.com/javase/tutorial/uiswing/start/about.html">About the JFC and Swing</a> – Definition der Java Foundation Classes</span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://java.sun.com/javase/technologies/desktop/index.jsp">Java SE Desktop Overview</a></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://java.sun.com/javase/technologies/desktop/media/">Java Media APIs</a></span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-09-16" href="https://de.wikipedia.org/wiki/?title=Java_Foundation_Classes&oldid=259802371">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>